<?php

/**
 * Hanterar in och utloggning 
 */
class LoginHandler {
	
  private static $logedin = "LogedIn";
  
  //kollar att en anvandare ar inloggad, denna kan
  //sedan anvandas for att avgora ifall en anvandare far se information eller inte.
  //returnerar true om inloggningen lycka annars false
  public function IsLoggedIn(){
    if (isset($_SESSION[self::$logedin]))		
			return true;
			  	
    	return false;     
  }
  
  //En funktion for att logga in som tar tva parametrar namn och losenord.
  //returnerar true om inloggningen lyckas annars false
  public function DoLogin($user,$password){
    if ($user == "Leif" && $password == "1234") {
	    	$_SESSION["LogedIn"] = $user;
	    	return TRUE;
		} 
		else if ($user == "Hans" && $password == "2345") {
	    	$_SESSION["LogedIn"] = $user;
	    	return TRUE;
		} 
		else if ($user == "Kaj" && $password == "3456") {
	    	$_SESSION["LogedIn"] = $user;
	    	return TRUE;
		}
	    return FALSE; 
  }
  
  //Funktionen DoLogout för att logga ut. Inga parametrar och inget returvärde
  //(utloggning kan inte misslyckas)
  public function DoLogout(){
  	if (isset($_SESSION["LogedIn"]) == TRUE) {
			 unset($_SESSION["LogedIn"]);
		}
  }
  // meddelande om inloggad med cookie
  public function CookieMessage($coookie){
  	if($coookie){
  		return "Inloggad med Cookie"."<br/>";
  	}
	else {
		return "inloggningen misslyckades"."<br/>";
	}
	
  }
  
  
  
  // funktion som testar klassens funktioner
  public function Test(){
  	// vi ser till att vi är utloggade
  	$this->DoLogout();	

		
	// vi skall nu vara utloggade så nedanstående skall ge false
	if ($this->IsLoggedIn()== true){
		echo "Fel, vi är inloggade fast vi borde vara utloggade";
		return false;		
	}
	// vi skall nu vara utloggade så nedanstående skall ge false
	if ($this->DoLogin("FEL","FEL")== true){
		echo "Fel, vi borde inte blivit inloggade";
		return false;		
	}	
	// vi borde bli inloggade så nedanstående skall ge true
	if ($this->DoLogin("Leif","1234")== FALSE){
		echo "Fel, vi borde ha blivit inloggade";
		return false;		
	}
	// vi skall nu vara inloggade så nedanstående skall ge true
	if ($this->IsLoggedIn()== FALSE){
		echo "Fel, vi är utloggade fast vi borde vara inloggade";
		return false;		
	}
	return true;				 	
  }
  
}

?>